/**
 * 
 */
package modul;

import java.util.List;

import modulIOContainer.DefaultImageContainer;

/**
 * @author Tony
 * 
 */
public abstract class AModul {

	protected List<DefaultImageContainer> input;
	protected List<DefaultImageContainer> output;

	private String outputFile = null;
	private String moduleSafeDir= null;
	
	
	/**
	 * 
	 * @return returns the class that will be accepted from the module
	 */
	public abstract Class<? extends DefaultImageContainer> getOutputClass();

	public abstract Class<? extends DefaultImageContainer> getInputClass();

	public abstract void initialize();

	public List<DefaultImageContainer> getOutput() {
		return output;
	}

	public void setInput(List<DefaultImageContainer> input) {
		this.input = input;
	}

	public abstract void process();

	/**
	 * @return the outputFile
	 */
	public String getOutputFile() {
		return outputFile;
	}

	/**
	 * @param outputFile
	 *            the outputFile to set
	 */
	public void setOutputFile(String outputFile) {
		this.outputFile = outputFile;
	}

	/**
	 * @return the moduleSafeDir
	 */
	public String getModuleSafeDir() {
		return moduleSafeDir;
	}

	/**
	 * @param moduleSafeDir the moduleSafeDir to set
	 */
	public void setModuleSafeDir(String moduleSafeDir) {
		this.moduleSafeDir = moduleSafeDir;
	}

}
